home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 1 / ETO Development Tools 1.iso / Essentials / Developer Essentials Jul 90 / Programming / MPW Interfaces & Libraries 3.1 / CIncludes / Files.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-10-13  |  20.3 KB  |  684 lines  |  [TEXT/MPS ]

  1. /************************************************************
  2.  
  3. Created: Tuesday, September 12, 1989 at 7:45 PM
  4.     Files.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.     Copyright Apple Computer, Inc.    1985-1989
  9.     All rights reserved
  10.  
  11. ************************************************************/
  12.  
  13.  
  14. #ifndef __FILES__
  15. #define __FILES__
  16.  
  17. #ifndef __TYPES__
  18. #include <Types.h>
  19. #endif
  20.  
  21. #ifndef __OSUTILS__
  22. #include <OSUtils.h>
  23. #endif
  24.  
  25. #ifndef __SEGLOAD__
  26. #include <SegLoad.h>
  27. #endif
  28.  
  29.  
  30. /* Finder Constants */
  31.  
  32. #define fsAtMark 0
  33. #define fOnDesk 1
  34. #define fsCurPerm 0
  35. #define fHasBundle 8192
  36. #define fsRdPerm 1
  37. #define fInvisible 16384
  38. #define fTrash -3
  39. #define fsWrPerm 2
  40. #define fDesktop -2
  41. #define fsRdWrPerm 3
  42. #define fDisk 0
  43. #define fsRdWrShPerm 4
  44. #define fsFromStart 1
  45. #define fsFromLEOF 2
  46. #define fsFromMark 3
  47. #define rdVerify 64
  48. #define ioDirFlg 3
  49. #define ioDirMask 0x10
  50. #define fsRtParID 1
  51. #define fsRtDirID 2
  52.  
  53. /* Version Release Stage Codes */
  54.  
  55. #define developStage 0x20
  56. #define alphaStage 0x40
  57. #define betaStage 0x60
  58. #define finalStage 0x80
  59.  
  60. enum {hFileInfo,dirInfo};
  61. typedef unsigned char CInfoType;
  62.  
  63. struct FInfo {
  64.     OSType fdType;                    /*the type of the file*/
  65.     OSType fdCreator;                /*file's creator*/
  66.     unsigned short fdFlags;         /*flags ex. hasbundle,invisible,locked, etc.*/
  67.     Point fdLocation;                /*file's location in folder*/
  68.     short fdFldr;                    /*folder containing file*/
  69. };
  70.  
  71. typedef struct FInfo FInfo;
  72. struct FXInfo {
  73.     short fdIconID;                 /*Icon ID*/
  74.     short fdUnused[4];                /*unused but reserved 8 bytes*/
  75.     short fdComment;                /*Comment ID*/
  76.     long fdPutAway;                 /*Home Dir ID*/
  77. };
  78.  
  79. typedef struct FXInfo FXInfo;
  80. struct DInfo {
  81.     Rect frRect;                    /*folder rect*/
  82.     unsigned short frFlags;         /*Flags*/
  83.     Point frLocation;                /*folder location*/
  84.     short frView;                    /*folder view*/
  85. };
  86.  
  87. typedef struct DInfo DInfo;
  88. struct DXInfo {
  89.     Point frScroll;                 /*scroll position*/
  90.     long frOpenChain;                /*DirID chain of open folders*/
  91.     short frUnused;                 /*unused but reserved*/
  92.     short frComment;                /*comment*/
  93.     long frPutAway;                 /*DirID*/
  94. };
  95.  
  96. typedef struct DXInfo DXInfo;
  97. #define ParamBlockHeader \
  98.     QElemPtr qLink;                 /*queue link in header*/\
  99.     short qType;                    /*type byte for safety check*/\
  100.     short ioTrap;                    /*FS: the Trap*/\
  101.     Ptr ioCmdAddr;                    /*FS: address to dispatch to*/\
  102.     ProcPtr ioCompletion;            /*completion routine addr (0 for synch calls)*/\
  103.     OSErr ioResult;                 /*result code*/\
  104.     StringPtr ioNamePtr;            /*ptr to Vol:FileName string*/\
  105.     short ioVRefNum;                /*volume refnum (DrvNum for Eject and MountVol)*/
  106.  
  107.  
  108. struct IOParam {
  109.     ParamBlockHeader
  110.     short ioRefNum;                 /*refNum for I/O operation*/
  111.     char ioVersNum;                 /*version number*/
  112.     char ioPermssn;                 /*Open: permissions (byte)*/
  113.     Ptr ioMisc;                     /*Rename: new name (GetEOF,SetEOF: logical end of file) (Open: optional ptr to buffer) (SetFileType: new type)*/
  114.     Ptr ioBuffer;                    /*data buffer Ptr*/
  115.     long ioReqCount;                /*requested byte count; also = ioNewDirID*/
  116.     long ioActCount;                /*actual byte count completed*/
  117.     short ioPosMode;                /*initial file positioning*/
  118.     long ioPosOffset;                /*file position offset*/
  119. };
  120.  
  121. typedef struct IOParam IOParam;
  122. struct FileParam {
  123.     ParamBlockHeader
  124.     short ioFRefNum;                /*reference number*/
  125.     char ioFVersNum;                /*version number*/
  126.     char filler1;
  127.     short ioFDirIndex;                /*GetFInfo directory index*/
  128.     unsigned char ioFlAttrib;        /*GetFInfo: in-use bit=7, lock bit=0*/
  129.     unsigned char ioFlVersNum;        /*file version number*/
  130.     FInfo ioFlFndrInfo;             /*user info*/
  131.     unsigned long ioFlNum;            /*GetFInfo: file number; TF- ioDirID*/
  132.     unsigned short ioFlStBlk;        /*start file block (0 if none)*/
  133.     long ioFlLgLen;                 /*logical length (EOF)*/
  134.     long ioFlPyLen;                 /*physical length*/
  135.     unsigned short ioFlRStBlk;        /*start block rsrc fork*/
  136.     long ioFlRLgLen;                /*file logical length rsrc fork*/
  137.     long ioFlRPyLen;                /*file physical length rsrc fork*/
  138.     unsigned long ioFlCrDat;        /*file creation date& time (32 bits in secs)*/
  139.     unsigned long ioFlMdDat;        /*last modified date and time*/
  140. };
  141.  
  142. typedef struct FileParam FileParam;
  143. struct VolumeParam {
  144.     ParamBlockHeader
  145.     long filler2;
  146.     short ioVolIndex;                /*volume index number*/
  147.     unsigned long ioVCrDate;        /*creation date and time*/
  148.     unsigned long ioVLsBkUp;        /*last backup date and time*/
  149.     unsigned short ioVAtrb;         /*volume attrib*/
  150.     unsigned short ioVNmFls;        /*number of files in directory*/
  151.     unsigned short ioVDirSt;        /*start block of file directory*/
  152.     short ioVBlLn;                    /*GetVolInfo: length of dir in blocks*/
  153.     unsigned short ioVNmAlBlks;     /*GetVolInfo: num blks (of alloc size)*/
  154.     long ioVAlBlkSiz;                /*GetVolInfo: alloc blk byte size*/
  155.     long ioVClpSiz;                 /*GetVolInfo: bytes to allocate at a time*/
  156.     unsigned short ioAlBlSt;        /*starting disk(512-byte) block in block map*/
  157.     unsigned long ioVNxtFNum;        /*GetVolInfo: next free file number*/
  158.     unsigned short ioVFrBlk;        /*GetVolInfo: # free alloc blks for this vol*/
  159. };
  160.  
  161. typedef struct VolumeParam VolumeParam;
  162. struct CntrlParam {
  163.     QElem *qLink;                    /*queue link in header*/
  164.     short qType;                    /*type byte for safety check*/
  165.     short ioTrap;                    /*FS: the Trap*/
  166.     Ptr ioCmdAddr;                    /*FS: address to dispatch to*/
  167.     ProcPtr ioCompletion;            /*completion routine addr (0 for synch calls)*/
  168.     OSErr ioResult;                 /*result code*/
  169.     StringPtr ioNamePtr;            /*ptr to Vol:FileName string*/
  170.     short ioVRefNum;                /*volume refnum (DrvNum for Eject and MountVol)*/
  171.     short ioCRefNum;                /*refNum for I/O operation*/
  172.     short csCode;                    /*word for control status code*/
  173.     short csParam[11];                /*operation-defined parameters*/
  174. };
  175.  
  176. typedef struct CntrlParam CntrlParam;
  177. struct SlotDevParam {
  178.     ParamBlockHeader
  179.     short ioRefNum;
  180.     char ioVersNum;
  181.     char ioPermssn;
  182.     Ptr ioMix;
  183.     short ioFlags;
  184.     char ioSlot;
  185.     char ioID;
  186. };
  187.  
  188. typedef struct SlotDevParam SlotDevParam;
  189. struct MultiDevParam {
  190.     ParamBlockHeader
  191.     short ioRefNum;
  192.     char ioVersNum;
  193.     char ioPermssn;
  194.     Ptr ioMix;
  195.     short ioFlags;
  196.     Ptr ioSEBlkPtr;
  197. };
  198.  
  199. typedef struct MultiDevParam MultiDevParam;
  200. union ParamBlockRec {
  201.     IOParam ioParam;
  202.     FileParam fileParam;
  203.     VolumeParam volumeParam;
  204.     CntrlParam cntrlParam;
  205.     SlotDevParam slotDevParam;
  206.     MultiDevParam multiDevParam;
  207. };
  208.  
  209. typedef union ParamBlockRec ParamBlockRec;
  210.  
  211. typedef ParamBlockRec *ParmBlkPtr;
  212.  
  213. struct HIOParam {
  214.     ParamBlockHeader
  215.     short ioRefNum;
  216.     char ioVersNum;
  217.     char ioPermssn;
  218.     Ptr ioMisc;
  219.     Ptr ioBuffer;
  220.     long ioReqCount;
  221.     long ioActCount;
  222.     short ioPosMode;
  223.     long ioPosOffset;
  224.     short filler1;
  225. };
  226.  
  227. typedef struct HIOParam HIOParam;
  228. struct HFileParam {
  229.     ParamBlockHeader
  230.     short ioFRefNum;
  231.     char ioFVersNum;
  232.     char filler1;
  233.     short ioFDirIndex;
  234.     char ioFlAttrib;
  235.     char ioFlVersNum;
  236.     FInfo ioFlFndrInfo;
  237.     long ioDirID;
  238.     unsigned short ioFlStBlk;
  239.     long ioFlLgLen;
  240.     long ioFlPyLen;
  241.     unsigned short ioFlRStBlk;
  242.     long ioFlRLgLen;
  243.     long ioFlRPyLen;
  244.     unsigned long ioFlCrDat;
  245.     unsigned long ioFlMdDat;
  246. };
  247.  
  248. typedef struct HFileParam HFileParam;
  249. struct HVolumeParam {
  250.     ParamBlockHeader
  251.     long filler2;
  252.     short ioVolIndex;
  253.     unsigned long ioVCrDate;
  254.     unsigned long ioVLsMod;
  255.     short ioVAtrb;
  256.     unsigned short ioVNmFls;
  257.     short ioVBitMap;
  258.     short ioAllocPtr;
  259.     unsigned short ioVNmAlBlks;
  260.     long ioVAlBlkSiz;
  261.     long ioVClpSiz;
  262.     short ioAlBlSt;
  263.     long ioVNxtCNID;
  264.     unsigned short ioVFrBlk;
  265.     unsigned short ioVSigWord;
  266.     short ioVDrvInfo;
  267.     short ioVDRefNum;
  268.     short ioVFSID;
  269.     unsigned long ioVBkUp;
  270.     unsigned short ioVSeqNum;
  271.     long ioVWrCnt;
  272.     long ioVFilCnt;
  273.     long ioVDirCnt;
  274.     long ioVFndrInfo[8];
  275. };
  276.  
  277. typedef struct HVolumeParam HVolumeParam;
  278. struct AccessParam {
  279.     ParamBlockHeader
  280.     short filler3;
  281.     short ioDenyModes;                /*access rights data*/
  282.     short filler4;
  283.     char filler5;
  284.     char ioACUser;                    /*access rights for directory only*/
  285.     long filler6;
  286.     long ioACOwnerID;                /*owner ID*/
  287.     long ioACGroupID;                /*group ID*/
  288.     long ioACAccess;                /*access rights*/
  289. };
  290.  
  291. typedef struct AccessParam AccessParam;
  292. struct ObjParam {
  293.     ParamBlockHeader
  294.     short filler7;
  295.     short ioObjType;                /*function code*/
  296.     Ptr ioObjNamePtr;                /*ptr to returned creator/group name*/
  297.     long ioObjID;                    /*creator/group ID*/
  298.     long ioReqCount;                /*size of buffer area*/
  299.     long ioActCount;                /*length of vol parms data*/
  300. };
  301.  
  302. typedef struct ObjParam ObjParam;
  303. struct CopyParam {
  304.     ParamBlockHeader
  305.     short ioDstVRefNum;             /*destination vol identifier*/
  306.     short filler8;
  307.     Ptr ioNewName;                    /*ptr to destination pathname*/
  308.     Ptr ioCopyName;                 /*ptr to optional name*/
  309.     long ioNewDirID;                /*destination directory ID*/
  310.     long filler14;
  311.     long filler15;
  312.     long ioDirID;                    /*same as in FileParam*/
  313. };
  314.  
  315. typedef struct CopyParam CopyParam;
  316. struct WDParam {
  317.     ParamBlockHeader
  318.     short filler9;
  319.     short ioWDIndex;
  320.     long ioWDProcID;
  321.     short ioWDVRefNum;
  322.     short filler10;
  323.     long filler11;
  324.     long filler12;
  325.     long filler13;
  326.     long ioWDDirID;
  327. };
  328.  
  329. typedef struct WDParam WDParam;
  330. union HParamBlockRec {
  331.     HIOParam ioParam;
  332.     HFileParam fileParam;
  333.     HVolumeParam volumeParam;
  334.     AccessParam accessParam;
  335.     ObjParam objParam;
  336.     CopyParam copyParam;
  337.     WDParam wdParam;
  338. };
  339.  
  340. typedef union HParamBlockRec HParamBlockRec;
  341.  
  342. typedef HParamBlockRec *HParmBlkPtr;
  343.  
  344. struct HFileInfo {
  345.     ParamBlockHeader
  346.     short ioFRefNum;
  347.     char ioFVersNum;
  348.     char filler1;
  349.     short ioFDirIndex;
  350.     char ioFlAttrib;
  351.     char filler2;
  352.     FInfo ioFlFndrInfo;
  353.     long ioDirID;
  354.     unsigned short ioFlStBlk;
  355.     long ioFlLgLen;
  356.     long ioFlPyLen;
  357.     unsigned short ioFlRStBlk;
  358.     long ioFlRLgLen;
  359.     long ioFlRPyLen;
  360.     unsigned long ioFlCrDat;
  361.     unsigned long ioFlMdDat;
  362.     unsigned long ioFlBkDat;
  363.     FXInfo ioFlXFndrInfo;
  364.     long ioFlParID;
  365.     long ioFlClpSiz;
  366. };
  367.  
  368. typedef struct HFileInfo HFileInfo;
  369. struct DirInfo {
  370.     ParamBlockHeader
  371.     short ioFRefNum;
  372.     short filler1;
  373.     short ioFDirIndex;
  374.     char ioFlAttrib;
  375.     char filler2;
  376.     DInfo ioDrUsrWds;
  377.     long ioDrDirID;
  378.     unsigned short ioDrNmFls;
  379.     short filler3[9];
  380.     unsigned long ioDrCrDat;
  381.     unsigned long ioDrMdDat;
  382.     unsigned long ioDrBkDat;
  383.     DXInfo ioDrFndrInfo;
  384.     long ioDrParID;
  385. };
  386.  
  387. typedef struct DirInfo DirInfo;
  388. union CInfoPBRec {
  389.     HFileInfo hfileInfo;
  390.     DirInfo dirInfo;
  391. };
  392.  
  393. typedef union CInfoPBRec CInfoPBRec;
  394.  
  395. typedef CInfoPBRec *CInfoPBPtr;
  396.  
  397. struct CMovePBRec {
  398.     QElemPtr qLink;
  399.     short qType;
  400.     short ioTrap;
  401.     Ptr ioCmdAddr;
  402.     ProcPtr ioCompletion;
  403.     OSErr ioResult;
  404.     StringPtr ioNamePtr;
  405.     short ioVRefNum;
  406.     long filler1;
  407.     StringPtr ioNewName;
  408.     long filler2;
  409.     long ioNewDirID;
  410.     long filler3[2];
  411.     long ioDirID;
  412. };
  413.  
  414. typedef struct CMovePBRec CMovePBRec;
  415. typedef CMovePBRec *CMovePBPtr;
  416.  
  417. struct WDPBRec {
  418.     QElemPtr qLink;
  419.     short qType;
  420.     short ioTrap;
  421.     Ptr ioCmdAddr;
  422.     ProcPtr ioCompletion;
  423.     OSErr ioResult;
  424.     StringPtr ioNamePtr;
  425.     short ioVRefNum;
  426.     short filler1;
  427.     short ioWDIndex;
  428.     long ioWDProcID;
  429.     short ioWDVRefNum;
  430.     short filler2[7];
  431.     long ioWDDirID;
  432. };
  433.  
  434. typedef struct WDPBRec WDPBRec;
  435. typedef WDPBRec *WDPBPtr;
  436.  
  437. struct FCBPBRec {
  438.     QElemPtr qLink;
  439.     short qType;
  440.     short ioTrap;
  441.     Ptr ioCmdAddr;
  442.     ProcPtr ioCompletion;
  443.     OSErr ioResult;
  444.     StringPtr ioNamePtr;
  445.     short ioVRefNum;
  446.     short ioRefNum;
  447.     short filler;
  448.     short ioFCBIndx;
  449.     short filler1;
  450.     long ioFCBFlNm;
  451.     short ioFCBFlags;
  452.     unsigned short ioFCBStBlk;
  453.     long ioFCBEOF;
  454.     long ioFCBPLen;
  455.     long ioFCBCrPs;
  456.     short ioFCBVRefNum;
  457.     long ioFCBClpSiz;
  458.     long ioFCBParID;
  459. };
  460.  
  461. typedef struct FCBPBRec FCBPBRec;
  462. typedef FCBPBRec *FCBPBPtr;
  463.  
  464. struct VCB {
  465.     QElemPtr qLink;
  466.     short qType;
  467.     short vcbFlags;
  468.     unsigned short vcbSigWord;
  469.     unsigned long vcbCrDate;
  470.     unsigned long vcbLsMod;
  471.     short vcbAtrb;
  472.     unsigned short vcbNmFls;
  473.     short vcbVBMSt;
  474.     short vcbAllocPtr;
  475.     unsigned short vcbNmAlBlks;
  476.     long vcbAlBlkSiz;
  477.     long vcbClpSiz;
  478.     short vcbAlBlSt;
  479.     long vcbNxtCNID;
  480.     unsigned short vcbFreeBks;
  481.     Str27 vcbVN;
  482.     short vcbDrvNum;
  483.     short vcbDRefNum;
  484.     short vcbFSID;
  485.     short vcbVRefNum;
  486.     Ptr vcbMAdr;
  487.     Ptr vcbBufAdr;
  488.     short vcbMLen;
  489.     short vcbDirIndex;
  490.     short vcbDirBlk;
  491.     unsigned long vcbVolBkUp;
  492.     unsigned short vcbVSeqNum;
  493.     long vcbWrCnt;
  494.     long vcbXTClpSiz;
  495.     long vcbCTClpSiz;
  496.     unsigned short vcbNmRtDirs;
  497.     long vcbFilCnt;
  498.     long vcbDirCnt;
  499.     long vcbFndrInfo[8];
  500.     unsigned short vcbVCSize;
  501.     unsigned short vcbVBMCSiz;
  502.     unsigned short vcbCtlCSiz;
  503.     unsigned short vcbXTAlBlks;
  504.     unsigned short vcbCTAlBlks;
  505.     short vcbXTRef;
  506.     short vcbCTRef;
  507.     Ptr vcbCtlBuf;
  508.     long vcbDirIDM;
  509.     short vcbOffsM;
  510. };
  511.  
  512. typedef struct VCB VCB;
  513. struct DrvQEl {
  514.     QElemPtr qLink;
  515.     short qType;
  516.     short dQDrive;
  517.     short dQRefNum;
  518.     short dQFSID;
  519.     unsigned short dQDrvSz;
  520.     unsigned short dQDrvSz2;
  521. };
  522.  
  523. typedef struct DrvQEl DrvQEl;
  524. typedef DrvQEl *DrvQElPtr;
  525.  
  526. struct NumVersion {
  527.     unsigned char majorRev;         /*1st part of version number in BCD*/
  528.     unsigned int minorRev : 4;        /*2nd part is 1 nibble in BCD*/
  529.     unsigned int bugFixRev : 4;     /*3rd part is 1 nibble in BCD*/
  530.     unsigned char stage;            /*stage code: dev, alpha, beta, final*/
  531.     unsigned char nonRelRev;        /*revision level of non-released version*/
  532. };
  533.  
  534. typedef struct NumVersion NumVersion;
  535. /* Numeric version part of 'vers' resource */
  536. struct VersRec {
  537.     NumVersion numericVersion;        /*encoded version number*/
  538.     short countryCode;                /*country code from intl utilities*/
  539.     Str255 shortVersion;            /*version number string - worst case*/
  540.     Str255 reserved;                /*longMessage string packed after shortVersion*/
  541. };
  542.  
  543. typedef struct VersRec VersRec;
  544. typedef VersRec *VersRecPtr, **VersRecHndl;
  545.  
  546. /* 'vers' resource format */
  547. #ifdef __cplusplus
  548. extern "C" {
  549. #endif
  550. pascal OSErr PBHGetVolParms(HParmBlkPtr paramBlock,Boolean async);
  551. pascal OSErr PBHGetLogInInfo(HParmBlkPtr paramBlock,Boolean async); 
  552. pascal OSErr PBHGetDirAccess(HParmBlkPtr paramBlock,Boolean async); 
  553. pascal OSErr PBHSetDirAccess(HParmBlkPtr paramBlock,Boolean async); 
  554. pascal OSErr PBHMapID(HParmBlkPtr paramBlock,Boolean async);
  555. pascal OSErr PBHMapName(HParmBlkPtr paramBlock,Boolean async);
  556. pascal OSErr PBHCopyFile(HParmBlkPtr paramBlock,Boolean async); 
  557. pascal OSErr PBHMoveRename(HParmBlkPtr paramBlock,Boolean async);
  558. pascal OSErr PBHOpenDeny(HParmBlkPtr paramBlock,Boolean async); 
  559. pascal OSErr PBHOpenRFDeny(HParmBlkPtr paramBlock,Boolean async);
  560. pascal OSErr PBOpen(ParmBlkPtr paramBlock,Boolean async);
  561. pascal OSErr PBClose(ParmBlkPtr paramBlock,Boolean async);
  562. pascal OSErr PBRead(ParmBlkPtr paramBlock,Boolean async);
  563. pascal OSErr PBWrite(ParmBlkPtr paramBlock,Boolean async);
  564. pascal OSErr PBGetVInfo(ParmBlkPtr paramBlock,Boolean async);
  565. pascal OSErr PBGetVol(ParmBlkPtr paramBlock,Boolean async); 
  566. pascal OSErr PBSetVol(ParmBlkPtr paramBlock,Boolean async); 
  567. pascal OSErr PBFlushVol(ParmBlkPtr paramBlock,Boolean async);
  568. pascal OSErr PBCreate(ParmBlkPtr paramBlock,Boolean async); 
  569. pascal OSErr PBDelete(ParmBlkPtr paramBlock,Boolean async); 
  570. pascal OSErr PBOpenRF(ParmBlkPtr paramBlock,Boolean async); 
  571. pascal OSErr PBRename(ParmBlkPtr paramBlock,Boolean async); 
  572. pascal OSErr PBGetFInfo(ParmBlkPtr paramBlock,Boolean async);
  573. pascal OSErr PBSetFInfo(ParmBlkPtr paramBlock,Boolean async);
  574. pascal OSErr PBSetFLock(ParmBlkPtr paramBlock,Boolean async);
  575. pascal OSErr PBRstFLock(ParmBlkPtr paramBlock,Boolean async);
  576. pascal OSErr PBSetFVers(ParmBlkPtr paramBlock,Boolean async);
  577. pascal OSErr PBAllocate(ParmBlkPtr paramBlock,Boolean async);
  578. pascal OSErr PBGetEOF(ParmBlkPtr paramBlock,Boolean async); 
  579. pascal OSErr PBSetEOF(ParmBlkPtr paramBlock,Boolean async); 
  580. pascal OSErr PBGetFPos(ParmBlkPtr paramBlock,Boolean async);
  581. pascal OSErr PBSetFPos(ParmBlkPtr paramBlock,Boolean async);
  582. pascal OSErr PBFlushFile(ParmBlkPtr paramBlock,Boolean async);
  583. pascal OSErr PBMountVol(ParmBlkPtr paramBlock); 
  584. pascal OSErr PBUnmountVol(ParmBlkPtr paramBlock);
  585. pascal OSErr PBEject(ParmBlkPtr paramBlock);
  586. pascal OSErr PBOffLine(ParmBlkPtr paramBlock);
  587. pascal void AddDrive(short drvrRefNum,short drvNum,DrvQElPtr qEl);
  588. pascal OSErr FSOpen(const Str255 fileName,short vRefNum,short *refNum); 
  589. OSErr fsopen(char *fileName,short vRefNum,short *refNum);
  590. pascal OSErr FSClose(short refNum); 
  591. pascal OSErr FSRead(short refNum,long *count,Ptr buffPtr);
  592. pascal OSErr FSWrite(short refNum,long *count,Ptr buffPtr); 
  593. pascal OSErr GetVInfo(short drvNum,StringPtr volName,short *vRefNum,long *freeBytes);
  594. OSErr getvinfo(short drvNum,char *volName,short *vRefNum,long *freeBytes);
  595. pascal OSErr GetFInfo(const Str255 fileName,short vRefNum,FInfo *fndrInfo); 
  596. OSErr getfinfo(char *fileName,short vRefNum,FInfo *fndrInfo);
  597. pascal OSErr GetVol(StringPtr volName,short *vRefNum);
  598. OSErr getvol(char *volName,short *vRefNum); 
  599. pascal OSErr SetVol(StringPtr volName,short vRefNum);
  600. OSErr setvol(char *volName,short vRefNum);
  601. pascal OSErr UnmountVol(StringPtr volName,short vRefNum);
  602. OSErr unmountvol(char *volName,short vRefNum);
  603. pascal OSErr Eject(StringPtr volName,short vRefNum);
  604. OSErr eject(char *volName,short vRefNum);
  605. pascal OSErr FlushVol(StringPtr volName,short vRefNum); 
  606. OSErr flushvol(char *volName,short vRefNum);
  607. pascal OSErr Create(const Str255 fileName,short vRefNum,OSType creator,
  608.     OSType fileType);
  609. OSErr create(char *fileName,short vRefNum,OSType creator,OSType fileType);
  610. pascal OSErr FSDelete(const Str255 fileName,short vRefNum); 
  611. OSErr fsdelete(char *fileName,short vRefNum);
  612. pascal OSErr OpenRF(const Str255 fileName,short vRefNum,short *refNum); 
  613. OSErr openrf(char *fileName,short vRefNum,short *refNum);
  614. pascal OSErr Rename(const Str255 oldName,short vRefNum,const Str255 newName);
  615. OSErr fsrename(char *oldName,short vRefNum,char *newName);
  616. pascal OSErr SetFInfo(const Str255 fileName,short vRefNum,const FInfo *fndrInfo);
  617. OSErr setfinfo(char *fileName,short vRefNum,FInfo *fndrInfo);
  618. pascal OSErr SetFLock(const Str255 fileName,short vRefNum); 
  619. OSErr setflock(char *fileName,short vRefNum);
  620. pascal OSErr RstFLock(const Str255 fileName,short vRefNum); 
  621. OSErr rstfLock(char *fileName,short vRefNum);
  622. pascal OSErr Allocate(short refNum,long *count);
  623. pascal OSErr GetEOF(short refNum,long *logEOF); 
  624. pascal OSErr SetEOF(short refNum,long logEOF);
  625. pascal OSErr GetFPos(short refNum,long *filePos);
  626. pascal OSErr SetFPos(short refNum,short posMode,long posOff);
  627. pascal OSErr GetVRefNum(short fileRefNum,short *vRefNum);
  628. pascal OSErr PBOpenWD(WDPBPtr paramBlock,Boolean async);
  629. pascal OSErr PBCloseWD(WDPBPtr paramBlock,Boolean async);
  630. pascal OSErr PBHSetVol(WDPBPtr paramBlock,Boolean async);
  631. pascal OSErr PBHGetVol(WDPBPtr paramBlock,Boolean async);
  632. pascal OSErr PBCatMove(CMovePBPtr paramBlock,Boolean async);
  633. pascal OSErr PBDirCreate(HParmBlkPtr paramBlock,Boolean async); 
  634. pascal OSErr PBGetWDInfo(WDPBPtr paramBlock,Boolean async); 
  635. pascal OSErr PBGetFCBInfo(FCBPBPtr paramBlock,Boolean async);
  636. pascal OSErr PBGetCatInfo(CInfoPBPtr paramBlock,Boolean async); 
  637. pascal OSErr PBSetCatInfo(CInfoPBPtr paramBlock,Boolean async); 
  638. pascal OSErr PBAllocContig(ParmBlkPtr paramBlock,Boolean async);
  639. pascal OSErr PBLockRange(ParmBlkPtr paramBlock,Boolean async);
  640. pascal OSErr PBUnlockRange(ParmBlkPtr paramBlock,Boolean async);
  641. pascal OSErr PBSetVInfo(ParmBlkPtr paramBlock,Boolean async);
  642. pascal OSErr PBHGetVInfo(HParmBlkPtr paramBlock,Boolean async); 
  643. pascal OSErr PBHOpen(HParmBlkPtr paramBlock,Boolean async); 
  644. pascal OSErr PBHOpenRF(HParmBlkPtr paramBlock,Boolean async);
  645. pascal OSErr PBHCreate(HParmBlkPtr paramBlock,Boolean async);
  646. pascal OSErr PBHDelete(HParmBlkPtr paramBlock,Boolean async);
  647. pascal OSErr PBHRename(HParmBlkPtr paramBlock,Boolean async);
  648. pascal OSErr PBHRstFLock(HParmBlkPtr paramBlock,Boolean async); 
  649. pascal OSErr PBHSetFLock(HParmBlkPtr paramBlock,Boolean async); 
  650. pascal OSErr PBHGetFInfo(HParmBlkPtr paramBlock,Boolean async); 
  651. pascal OSErr PBHSetFInfo(HParmBlkPtr paramBlock,Boolean async); 
  652. pascal void FInitQueue(void)
  653.     = 0xA016;
  654. pascal QHdrPtr GetFSQHdr(void); 
  655. pascal QHdrPtr GetDrvQHdr(void);
  656. pascal QHdrPtr GetVCBQHdr(void);
  657. pascal OSErr HGetVol(StringPtr volName,short *vRefNum,long *dirID); 
  658. pascal OSErr HSetVol(StringPtr volName,short vRefNum,long dirID);
  659. pascal OSErr HOpen(short vRefNum,long dirID,const Str255 fileName,char permission,
  660.     short *refNum); 
  661. pascal OSErr HOpenRF(short vRefNum,long dirID,const Str255 fileName,char permission,
  662.     short *refNum); 
  663. pascal OSErr AllocContig(short refNum,long *count); 
  664. pascal OSErr HCreate(short vRefNum,long dirID,const Str255 fileName,OSType creator,
  665.     OSType fileType);
  666. pascal OSErr DirCreate(short vRefNum,long parentDirID,const Str255 directoryName,
  667.     long *createdDirID);
  668. pascal OSErr HDelete(short vRefNum,long dirID,const Str255 fileName);
  669. pascal OSErr HGetFInfo(short vRefNum,long dirID,const Str255 fileName,FInfo *fndrInfo); 
  670. pascal OSErr HSetFInfo(short vRefNum,long dirID,const Str255 fileName,const FInfo *fndrInfo);
  671. pascal OSErr HSetFLock(short vRefNum,long dirID,const Str255 fileName); 
  672. pascal OSErr HRstFLock(short vRefNum,long dirID,const Str255 fileName); 
  673. pascal OSErr HRename(short vRefNum,long dirID,const Str255 oldName,const Str255 newName);
  674. pascal OSErr CatMove(short vRefNum,long dirID,const Str255 oldName,long newDirID,
  675.     const Str255 newName);
  676. pascal OSErr OpenWD(short vRefNum,long dirID,long procID,short *wdRefNum);
  677. pascal OSErr CloseWD(short wdRefNum);
  678. pascal OSErr GetWDInfo(short wdRefNum,short *vRefNum,long *dirID,long *procID); 
  679. #ifdef __cplusplus
  680. }
  681. #endif
  682.  
  683. #endif
  684.